- Windows Metafile
-
Windows Metafile Расширение .wmf, .wmz
MIME image/x-wmf
Разработан Тип формата Развит в EMF
Enhanced Metafile Расширение .emf, .emz
MIME image/x-emf
Разработан Тип формата Расширен из WMF
WMF (англ. Windows MetaFile) — универсальный формат векторных графических файлов для Windows приложений. Используется для хранения коллекции графических изображений Microsoft Clip Gallery. Формат разработан Microsoft и является неотъемлемой частью Windows, так как сохраняет последовательность аппаратно-независимых функций GDI (Graphical Device Interface), непосредственно выводящих изображение в заданный контекст графического устройства (на экран, на принтер и т.п.). Очень часто WMF неявно используется для сохранения образа окна вывода программы и его последующего восстановления, а также при переносе информации через буфер обмена (clipboard). Из MS Windows запись и чтение в файл этого формата осуществляются чрезвычайно просто и быстро. Файл этого формата может быть открыт с помощью кроссплатформенных программ GIMP (с предварительной растеризацией) и Inkscape. На платформе Macintosh аналогичную роль играет формат PICT.
Как формат векторной графики WMF в той или иной степени поддерживается многими мощными приложениями — AutoCAD, OpenOffice.org, и может использоваться для обмена данными между ними.
Структура файла
Файлы WMF и EMF состоят из списка записей, каждая из которых представляет собой определённую команду с набором аргументов. Форматы записей WMF и EMF похожи, однако есть следующие основные различия:
- В EMF добавились новые коды функций
- В EMF коды функций изменились по сравнению с WMF
- Аргументы, бывшие в WMF 16-битными, стали 32-битными в EMF
- В некоторых функциях в EMF добавились новые аргументы
Список типов записей WMF и EMF
WMF-запись Код WMF-записи EMF-запись Код EMF-записи Описание EMR_HEADER 0x00000001 Заголовок EMR_POLYBEZIER 0x00000002 EMR_POLYBEZIER16 0x00000055 META_POLYGON 0x0324 EMR_POLYGON 0x00000003 Нарисовать замкнутую ломаную линию EMR_POLYGON16 0x00000056 META_POLYLINE 0x0325 EMR_POLYLINE 0x00000004 EMR_POLYLINE16 0x00000057 EMR_POLYBEZIERTO 0x00000005 EMR_POLYBEZIERTO16 0x00000058 META_POLYPOLYGON 0x0538 EMR_POLYPOLYGON 0x00000008 EMR_POLYPOLYGON16 0x0000005B META_SETWINDOWEXT 0x020C EMR_SETWINDOWEXTEX 0x00000009 Установить размеры окна (ширину и высоту) META_SETWINDOWORG 0x020B EMR_SETWINDOWORGEX 0x0000000A Установить позицию левого верхнего угла окна (x и y) META_SETVIEWPORTEXT 0x020E EMR_SETVIEWPORTEXTEX 0x0000000B Установить размеры устройства вывода (ширину и высоту) META_SETVIEWPORTORG 0x020D EMR_SETVIEWPORTORGEX 0x0000000C Установить позицию левого верхнего угла устройства вывода (x и y) EMR_SETBRUSHORGEX 0x0000000D META_EOF 0x0000 EMR_EOF 0x0000000E Конец файла EMR_SETPIXELV 0x0000000F META_SETMAPPERFLAGS 0x0231 EMR_SETMAPPERFLAGS 0x00000010 META_SETMAPMODE 0x0103 EMR_SETMAPMODE 0x00000011 Задаёт режим преобразования логических единиц измерения окна в единицы измерения устройства вывода META_SETBKMODE 0x0102 EMR_SETBKMODE 0x00000012 Установить режим заливки (0 - заливка выключена, 1 - заливка включена) META_SETPOLYFILLMODE 0x0106 EMR_SETPOLYFILLMODE 0x00000013 META_SETROP2 0x0104 EMR_SETROP2 0x00000014 Установить логическую операцию при рисовании (для накладывания прозрачного/инвертирующего изображения и т.п.) META_SETSTRETCHBLTMODE 0x0107 EMR_SETSTRETCHBLTMODE 0x00000015 META_SETTEXTALIGN 0x012E EMR_SETTEXTALIGN 0x00000016 Установить горизонтальное и вертикальное выравнивание (задаётся при помощи флагов, объединённых через логическое ИЛИ) EMR_SETCOLORADJUSTMENT 0x00000017 META_SETTEXTCOLOR 0x0209 EMR_SETTEXTCOLOR 0x00000018 Установить цвет текста (32-битный RGB0) META_SETBKCOLOR 0x0201 EMR_SETBKCOLOR 0x00000019 Установить цвет заливки (32-битный RGB0) META_OFFSETCLIPRGN 0x0220 EMR_OFFSETCLIPRGN 0x0000001A META_MOVETO 0x0214 EMR_MOVETOEX 0x0000001B META_EXCLUDECLIPRECT 0x0415 EMR_EXCLUDECLIPRECT 0x0000001D META_INTERSECTCLIPRECT 0x0416 EMR_INTERSECTCLIPRECT 0x0000001E META_SCALEVIEWPORTEXT 0x0412 EMR_SCALEVIEWPORTEXTEX 0x0000001F Растянуть устройство вывода по горизонтали и вертикали (указывается два дробных множителя, по x и по y, каждый в виде двух целых чисел - числителя и знаменателя дроби) META_SCALEWINDOWEXT 0x0410 EMR_SCALEWINDOWEXTEX 0x00000020 Растянуть окно по горизонтали и вертикали (указывается два дробных множителя, по x и по y, каждый в виде двух целых чисел - числителя и знаменателя дроби) META_RESTOREDC 0x0127 EMR_RESTOREDC 0x00000022 Восстановить состояние устройства вывода в заранее сохранённое командой SAVEDC META_SELECTOBJECT 0x012D EMR_SELECTOBJECT 0x00000025 META_CREATEBRUSHINDIRECT 0x02FC EMR_CREATEBRUSHINDIRECT 0x00000027 META_DELETEOBJECT 0x01f0 EMR_DELETEOBJECT 0x00000028 EMR_ANGLEARC 0x00000029 META_ELLIPSE 0x0418 EMR_ELLIPSE 0x0000002A META_RECTANGLE 0x041B EMR_RECTANGLE 0x0000002B META_ROUNDRECT 0x061C EMR_ROUNDRECT 0x0000002C META_ARC 0x0817 EMR_ARC 0x0000002D META_CHORD 0x0830 EMR_CHORD 0x0000002E META_PIE 0x081A EMR_PIE 0x0000002F META_SELECTPALETTE 0x0234 EMR_SELECTPALETTE 0x00000030 META_CREATEPALETTE 0x00f7 EMR_CREATEPALETTE 0x00000031 META_SETPALENTRIES 0x0037 EMR_SETPALETTEENTRIES 0x00000032 Установить палитру META_RESIZEPALETTE 0x0139 EMR_RESIZEPALETTE 0x00000033 META_EXTFLOODFILL 0x0548 EMR_EXTFLOODFILL 0x00000035 META_LINETO 0x0213 EMR_LINETO 0x00000036 EMR_ARCTO 0x00000037 EMR_SETARCDIRECTION 0x00000039 EMR_SETMITERLIMIT 0x0000003A EMR_STROKEPATH 0x00000040 EMR_COMMENT 0x00000046 META_FILLREGION 0x0228 EMR_FILLRGN 0x00000047 META_INVERTREGION 0x012A EMR_INVERTRGN 0x00000049 Обратить цвета в регионе, заданном объединением множества прямоугольников META_PAINTREGION 0x012B EMR_PAINTRGN 0x0000004A META_SELECTCLIPREGION 0x012C EMR_EXTSELECTCLIPRGN 0x0000004B META_BITBLT 0x0922 EMR_BITBLT 0x0000004C META_STRETCHBLT 0x0B23 EMR_STRETCHBLT 0x0000004D META_SETDIBTODEV 0x0d33 EMR_SETDIBITSTODEVICE 0x00000050 META_DIBSTRETCHBLT 0x0b41 EMR_STRETCHDIBITS 0x00000051 META_CREATEFONTINDIRECT 0x02FB EMR_EXTCREATEFONTINDIRECTW 0x00000052 META_CREATEPENINDIRECT 0x02FA EMR_EXTCREATEPEN 0x0000005F EMR_SETICMMODE 0x00000062 EMR_CREATECOLORSPACE 0x00000063 EMR_SETCOLORSPACE 0x00000064 EMR_DELETECOLORSPACE 0x00000065 EMR_GLSRECORD 0x00000066 EMR_GLSBOUNDEDRECORD 0x00000067 EMR_PIXELFORMAT 0x00000068 EMR_FORCEUFIMAPPING 0x0000006D EMR_COLORCORRECTPALETTE 0x0000006F EMR_SETICMPROFILEA 0x00000070 EMR_SETICMPROFILEW 0x00000071 META_SETLAYOUT 0x0149 EMR_SETLAYOUT 0x00000073 Задаёт направление вывода текста и изображений - слева-направо или справа-налево (в последнем случае можно указать, требуется ли выводить изображения отражёнными слева-направо) EMR_GRADIENTFILL 0x00000076 EMR_SETLINKEDUFIS 0x00000077 META_SETTEXTJUSTIFICATION 0x020A EMR_SETTEXTJUSTIFICATION 0x00000078 META_REALIZEPALETTE 0x0035 META_SETRELABS 0x0105 META_SETTEXTCHAREXTRA 0x0108 META_DIBCREATEPATTERNBRUSH 0x0142 META_OFFSETVIEWPORTORG 0x0211 META_OFFSETWINDOWORG 0x020F META_FLOODFILL 0x0419 META_FRAMEREGION 0x0429 META_ANIMATEPALETTE 0x0436 META_TEXTOUT 0x0521 META_SETPIXEL 0x041F META_PATBLT 0x061D META_SAVEDC 0x001E Сохранить состояние устройства вывода META_ESCAPE 0x0626 META_DIBBITBLT 0x0940 META_EXTTEXTOUT 0x0a32 META_STRETCHDIB 0x0f43 META_CREATEPATTERNBRUSH 0x01F9 META_CREATEREGION 0x06FF Ссылки
- [MS-WMF]: Windows Metafile Format (англ.)
- [MS-EMF]: Enhanced Metafile Format (англ.)
Медиаконтейнеры Видео/аудио Аудио Графические форматы (сжатие) Растровые Векторные Комплексные Категории:- Форматы файлов
- Графические форматы
- Векторная графика
Wikimedia Foundation. 2010.